一個典型的 Pod YAML 檔案由以下幾個關鍵元素組成:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: container-1
image: nginx:latest
- name: container-2
image: busybox:latest
apiVersion
: 表示使用的 Kubernetes API 版本,通常為 v1。kind
: 指定了資源類型,這裡有一個 Pod。metadata
: 包含有關 Pod 的 raw data,包括名稱、標籤等。spec
: 包含了 Pod 的規範,其中定義了容器的配置。在 spec 部分中,您可以定義 Pod 包含的容器。 Pod 可以包含一個或多個容器,通常用於運行共享資源或協作工作的容器。 每個容器都應該有一個唯一的名稱、要使用的容器映像和其他配置。
containers:
- name: container-1
image: nginx:latest
- name: container-2
image: busybox:latest
我們可以定義 Pod 的重新啟動策略,以指定容器在退出後是否應該重新啟動。 預設情況下,Pod 的重新啟動策略為 Always,即容器將在退出時自動重新啟動。 您也可以選擇 OnFailure 或 Never 作為重新啟動策略。
restartPolicy: Always
Pod 有自己的 IP 位址和連接 port 空間。 您可以定義容器的 port mapping,以允許外部存取容器。 此外,Kubernetes 提供了各種網路插件(如 Calico、Flannel、Cilium 等),以實現不同網路拓撲和策略。
ports:
- containerPort: 80
在編寫 Pod 的 YAML 檔案時,有一些重要注意事項需要考慮:
resources:
limits:
cpu: "0.5"
memory: "512Mi"
requests:
cpu: "0.2"
memory: "256Mi"
以下是編寫 Pod YAML 檔案時的最佳做法: